Jump to content
  • 0

Помогите пожалуйста!


MrShotty
 Share

Question

Здраствуйте! У меня возникла проблема с созданием скрипта так как я не очень разбираюсь(чайник короче) в php , я создаю сайт биттвы хип-хоп исполнителей и нужен скрипт для добавления пользователя в таблицу.

Есть Форма

<form  action="add.php" id="lForm" method="post" enctype="multipart/form-data">
<fieldset id="body">
<fieldset>
<label for="login">Логин:</label>
<input type="text" name="rLogin" id="email" />
</fieldset>
<fieldset>
<label for="password">Выберите ваш текст в формате txt:</label>
<input type="file" name="rFile" id="password" />
</fieldset>

<input type="submit" id="login" value="Отправить" />

</fieldset>

</form>

и нужно чтобы то что ввел пользователь заносилось в таблицу вот эту

<table style="width:100%;" class="tracks">
<tbody><tr id="first"><td>ID</td><td>Имя участника</td>
<td>Текст</td>
<td>Судья 1</td><td>Судья 2</td><td>Судья 3</td><td>Судья 4</td><td>Респект</td><td>Вердикт</td></tr>


<div id="entryID2">
<tr class="cat_1 ent"><td> Тут должен быть номер участника</td><td> Тут должен быть Логин участника</td><td>


</td><td>А тут должна быть ссылка на тот файл который участник загружал </td><td> </td><td> </td><td> </td><td></td>
<td id="msg_327"><span style="color:gray;">Ожидается</span><div style="display:none;" id="verdict_327"></div>


</td></tr>
</tbody></table>

А вот я попытался сделать что-то но ничего не работает


<?
if($_POST['submit']){
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$rLogin = trim($_POST['rLogin']);
$rFile = trim($_FILES['rFile']);
$uploaddir = '/1round/txt/';
$uploadfile = $uploaddir . basename($_FILES['rFile']['$rLogin_r1']);
if ($rLogin == '') {
die("Поле 'Логин' не заполнено<br />\n");
// Логин может состоять из букв, цифр и подчеркивания
}elseif (!preg_match("/^\w{3,}$/", $rLogin)) {
die("В поле 'Логин' введены недопустимые символы<br />\n");
}
if ($rFile == '') {
die("Поле 'Ваш текст' не заполнено<br />\n");
}
if($_FILES['rFile']['type'] == 'txt' )
{
die("Вы выбрали не тот фармат файла, фармат файла должен быть .txt<br />\n");
}

// Устанавливаем соединение с бд
$link = mysql_connect('sql-4.radyx.ru',stepupbattle,sl6jmrvv);
if (!$link) {
die("Не могу соединиться с базой данных");
}else {
// Выбираем базу данных
mysql_select_db('stepupbattle611', $link);
// Записываем в базу (не используем addslashes - экранировать нечего)
mysql_query("INSERT INTO table (login, txt)
VALUES ('$rLogin','$rFile')",$link);
if (mysql_error($link) != "") {
die("Пользователь с таким логином уже существует, выберите другой<br />\n");
}
echo "Вы добавлены в таблицу <br />\n";
mysql_close($link);
}


//Вот этот html код должен создаваться в таблице которая сверху


$table = "
<div id=\"$id\">
<tr class=\"cat_1 ent\"><td>$id</td><td>$rLogin</td>
<td><a href=\"http://stepupbattle.ixrad.ru/1round/txt/$rLogin_r1.txt\">Читать</a> </td>
<td></td> <td></td> <td></td> <td></td> <td></td>
<td> <span>Ожидается </span>
</div>";



}
}

?>

пожалуйста помогите кто чем может если кто-то сделает скрипт то буду очень благодарен, или дайте хоть какой-то совет подскажите что да как сделать. Или может можно как то с помощью Javascripta все это сделать . Заранее большое спасибо.

Edited by MrShotty
Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0
$link = mysql_connect('sql-4.radyx.ru',stepupbattle,sl6jmrvv);
А эти константы определены? Это не перл, здесь строки должны быть в кавычках.

А ничего, что ты логин и пароль спалил?

mysql_query("INSERT INTO table (login, txt)

VALUES ('$rLogin','$rFile')",$link);

Здравствуй, sql-инъекция.
Link to comment
Share on other sites

  • 0

мне кажется вы путаете модель и представление.

и так по порядку:

представление(View)

1) у вас есть форма отправки файла с двумя полями: rLogin и rFile

2) Табличка с информацией по участникам

модель(Model)

1) таблица в mysql со следующими полями: id, login, txt

контроллер(Controller)

это непосредственно php скрипт(ы) который выполняет связку модели и представления

1) add.php

выполняет проверку(! а у вас проверка рассчитана на "хорошего" пользователя, о чем вам указал Int) и если все нормально добавляет данные в таблицу БД.

поле txt таблицы должно содержать имя файла или же ссылку на него. Про $_FILES можете посмотреть тут

2) show.php

для отображения данных из БД можно так


<?php

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}

if (!mysql_select_db("mydbname")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}

$sql = "SELECT login , txt
FROM sometable";

$result = mysql_query($sql);

if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}

if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}

// Тут просто вывод данных, как вы их представите: в таблице или же по другому вам решать)
while ($row = mysql_fetch_assoc($result)) {
echo $row["login"];
echo $row["txt"];
}

mysql_free_result($result);

?>

это не полностью mvc, но в этом направлении:)

Edited by Micks
Link to comment
Share on other sites

  • 0

а ничего что при каждой ошибке скрипт останавливается die()? Или так и задумано?

а как вы хотите обработать исключительную ситуацию? например сервер бд недоступен:) если есть варианты можно ввести try{}catch( Exception ){} и как-нибудь обработать

Link to comment
Share on other sites

  • 0

ну вообще-то там остановка при любой ошибке: не правильный формат, поле не заполнено и т.п. :) Вообще-то если ошибка, то нужно пользователю это сказать и вернуть на повтор

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy